//! Stopword lists are used to filter out the common words in a language.
//!
//! The stopword functions all remove stop words from a given vector of words.

/// Removes English stopwords from the given list of words.
///
/// # Example
///
/// ```
/// let mut words = vec![String::from("walking"), String::from("about"), 
///                      String::from("the"), String::from("room")];
/// gecliht::remove_english(&mut words);
/// assert_eq!(vec!["walking", "room"], words);
/// ```
///
pub fn remove_english(words: &mut Vec<String>) {
    for i in (0..words.len()).rev() {
        if let Ok(_) = STOP_WORDS.binary_search(&words[i].as_str()) {
            words.remove(i);
        }
    }
}

pub fn is_english_stopword(word: &str) -> bool {
    if let Ok(_) = STOP_WORDS.binary_search(&word) {
        true
    } else {
        false
    }
}

const STOP_WORDS: &[&str] = &[
    "a",
    "about",
    "above",
    "after",
    "again",
    "against",
    "all",
    "am",
    "an",
    "and",
    "any",
    "are",
    "as",
    "at",
    "be",
    "because",
    "been",
    "before",
    "being",
    "below",
    "between",
    "both",
    "but",
    "by",
    "cannot",
    "could",
    "did",
    "do",
    "does",
    "doing",
    "down",
    "during",
    "each",
    "few",
    "for",
    "from",
    "further",
    "had",
    "has",
    "have",
    "having",
    "he",
    "her",
    "here",
    "hers",
    "herself",
    "him",
    "himself",
    "his",
    "how",
    "i",
    "if",
    "in",
    "into",
    "is",
    "it",
    "its",
    "itself",
    "me",
    "more",
    "most",
    "my",
    "myself",
    "no",
    "nor",
    "not",
    "of",
    "off",
    "on",
    "once",
    "only",
    "or",
    "other",
    "ought",
    "our",
    "ours 	",
    "ourselves",
    "out",
    "over",
    "own",
    "same",
    "she",
    "should",
    "so",
    "some",
    "such",
    "than",
    "that",
    "the",
    "their",
    "theirs",
    "them",
    "themselves",
    "then",
    "there",
    "these",
    "they",
    "this",
    "those",
    "through",
    "to",
    "too",
    "under",
    "until",
    "up",
    "very",
    "was",
    "we",
    "were",
    "what",
    "when",
    "where",
    "which",
    "while",
    "who",
    "whom",
    "why",
    "with",
    "would",
    "you",
    "your",
    "yours",
    "yourself",
    "yourselves",
];


